1. Field of the Invention
The present invention is related to artificial intelligence systems and more particularly, to rule based expert systems.
2. Description of the Related Technology
The techniques used in typical artificial intelligence systems have been proven to be efficient in solving very complex problems. A standard expert system architecture comprises a rule base and a fact base. The rule base consists of a series of inferencing patterns which are called rules, and the fact base consists of a series of data patterns which describe the present condition of the system and are called facts. A typical rule based expert system uses a large number of IF-THEN rules, also called productions, to control the actions of the system (e.g., IF the pattern of a rule matches a pattern in the fact base, THEN a specific action is asserted in the system). In normal operation, the expert system will progress through each rule, and compare that rule to each fact pattern in the fact base looking for a match. The determination of a match between a rule and a specific fact often takes a significant amount of processing power and time. As the complexity of the expert system increases, the number of rules and fact patterns will increase, and necessarily so will the computational time spent looking for matches. Therefore, as the number of rules and system conditions, or facts, increase, the overall reaction time of the system will increase. In many cases, this slow reaction time causes expert systems to be useless for real-time applications., i.e., where a processing function must be completed within a predetermined time.
Traditional von Neumann computer architectures are very inefficient in performing the kinds of processing required in an expert system. In an article by A. Gupta, published in 1987, entitled Parallelism in Production Systems, it is shown that production systems spend about 90% of their time performing pattern matching. More efficient and effective execution architectures are required to make it feasible to use expert systems in real-time applications where high performance computers are not viable design alternatives, because of cost, size and reliability problems.
Further, expert systems have historically required extensive amounts of computational resources, i.e., processor or CPU power, to efficiently match the rule patterns to the fact patterns. To accommodate the necessary CPU power, many expert systems of significance must be run on huge computer systems. These computer systems also include expanded memory in order to handle the large number of variables whose condition must be stored in the fact base. Such large computer systems are not suitable for embedding in other application specific systems, and therefore limit the number of suitable applications for traditional expert system architectures.
For example, in a typical test system environment, the condition of a multitude of variables must be monitored and then various outputs are produced depending on the condition of a defined set of the variables. An expert system, or inferencing mechanism, is designed to determine the condition of parameters and effect an output based on the conditions, therefore an expert system would be ideal for such an application. However traditional expert systems are not suited for embedded test applications due to their burdensome processing requirements. Further, prior embedded expert systems have typically been too slow for a real-time test system. Thus, there exists a need for a real-time expert system, that may be embedded in, for example, test system applications.